Address management device

ABSTRACT

Conventionally, when a switch virtualizing a storage (storage virtualization switch) is installed in a computer system including an SAN, a host computer, and a storage device, since a port ID of a virtual storage and a port ID of a storage device assigned to the virtual storage are different, the computer system has to be suspended at the time of installation of the storage virtualization switch. The storage virtualization switch installed in the computer system assigns a port ID to a port of a virtual storage generated by the storage virtualization switch so as to be equivalent to a port ID of an existing storage device and, in the case in which the port ID is designated as an access destination by an access request from one computer to the storage device, sends the access request to the virtual storage.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a computer system in which a computer,a storage device, and a switch are connected to a network, and inparticular to a switch for virtualizing a storage (virtualized storageis hereinafter referred to as virtual storage) while keeping thecomputer system operating (hereinafter referred to as storagevirtualization switch).

2. Description of the Related Art

Recently, in accordance with increase in an amount of data, a StorageArea Network (SAN) which is a technique for connecting a computer andplural storage devices by a network (switch) has been used. According tothis SAN technique, it becomes possible to cope with sudden increase inthe amount of data by connecting the storage devices to the switch atany time. However, as the number of storage devices in a computer systemincreases, since ports for the switch connecting the computer and thestorage devices becomes insufficient, addition of switches is required.

In the related art, installation of a switch in an existing computersystem is realized by connecting one of free ports of a switch in thesystem and one port of the switch to be added with a network (see “IBMTotal Storage SAN Switch: Using the 2109 Model M12”, [online],[retrieved on Jan. 10, 2003], Internet <URL:http://www.1.ibm.com/support/docview.wss?uid=ssg1S7000313&aid=1>, pages59 to 63). According to the above-mentioned technique, it is possible toinstall the switch while keeping the system operating.

SUMMARY OF THE INVENTION

On the other hand, in the SAN, although a host can directly access theplural storage devices, since the host is required to be conscious ofrespective physical storage devices, storage areas which the host canuse at a time are limited to a capacity within the respective storagedevices. In order to solve such problems, installation of a storagevirtualization switch for showing the plural storage devices as if theyare one logical storage device for the host is in progress. With thistechnique, it becomes possible to provide the host with a virtualstorage which provides a virtual storage configuration which does notdepend upon a physical storage configuration. However, it is notconsidered to install this storage virtualization switch in the computersystem while keeping the system operating. The storage virtualizationswitch cannot be installed in the computer system while keeping thesystem operating due to the following reasons. That is, since a virtualstorage generated by the storage virtualization switch has a differentport ID (address assigned to a port) and a port name (also called WWN)which are completely different from those of a storage device, thevirtual storage is recognized as a separate storage device on the host.In this case, it is necessary to stop operation of an application, whichuses a storage device before it is assigned to the virtual storage onthe host, and change setting.

It is an object of the present invention to provide a storagevirtualization switch which, when it is installed in an existingcomputer system and an existing storage device is assigned as a virtualstorage, makes it possible to access the virtual storage using a port IDof the storage device, which a computer uses in accessing the existingstorage, without change.

In order to attained the object of the present invention, the storagevirtualization switch to be installed in the computer system assigns aport ID to a port of a virtual storage generated by the storagevirtualization switch such that the port ID is equivalent to a port IDof the existing storage device and, in the case in which the port ID isdesignated as an access destination in an access request from onecomputer to the storage device, the access request is sent to thevirtual storage.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram showing a computer system provided with a storagevirtualization switch;

FIG. 2 is a diagram showing an example of a structure of a computersystem to which the present invention can be applied;

FIGS. 3A and 3B are diagrams showing examples of a structure of thecomputer system after installing the storage virtualization switch;

FIG. 4 is a diagram showing a processing flow of procedures forinstalling the storage virtualization switch;

FIG. 5 is a diagram showing a name table which is used in a nameservice;

FIG. 6 is a diagram showing a processing flow illustrating proceduresfor name service operations;

FIG. 7 is a diagram showing a routing table which is used in routing;

FIG. 8 is a diagram showing a processing flow illustrating proceduresfor operations of routing;

FIG. 9 is a diagram showing an overall virtual table which is used atthe time of virtual processing; and

FIG. 10 is a diagram showing an example of a structure of a computersystem including a memory device system.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

Embodiments of the present invention will be described with reference toFIG. 1. In the figure, programs and information stored in memories areencircles. In addition, symbols such as Pa and Ma in the figure areassociated with FIGS. 4 and 6.

FIG. 1 shows an example of a computer system in the present invention.The computer system includes plural hosts 10 (10A, 10B), plural switches500 (500A, 500B), a storage virtualization switch 20, one or pluralstorage devices 310 (310A, 310B), and an operation terminal 300. Here,the storage device is assumed to be a device including plural memorydevices and a memory control device for controlling the memory devices.The hosts 10 and the storage virtualization switch 20 are connected viaa communication channel 15, the storage virtualization switch 20 and oneor plural storage devices 310 are connected via a communication channel315, and the operation terminal 300 and the storage virtualizationswitch 20 are connected via a communication channel 320. Internal paths120 only have to be a communication channel which can transfer data suchas a fibre channel or the Ethernet.

The storage virtualization switch 20 has port processing devices 30(30A, 30B, 30C, and 30D), an internal switch 100 which switches a routeof data among the port processing devices, and a central control unit200.

The port processing devices 30 have ports 50 which are connected to thehosts 10, the storage devices 310, and the internal switch 100 to sendand receive data, a processing section 40 which applies virtualprocessing or the like to received data, and a memory 60 which stores arouting table 70 and a local virtual table 80 which are described later.These are connected by a communication channel such as an internal bus.

The central control unit 200 has a memory 220 for storing a name server250, an overall virtual table 240 (FIG. 9), the routing table 70 (FIG.7), and a name table 230 (FIG. 5), which are described later, and aprocessing section 210 which controls the entire storage virtualizationswitch 20. These are connected by a communication channel such as aninternal bus. Here, the name server means a program for managing nameinformation of nodes in the SAN. More specifically, the name server hasa section for storing the name information in a memory according to arequest from the hosts or the storage devices and assigns an ID to thename information and a section for coping with an inquiry request for anID from a WWN of a storage by one host.

Although not illustrated, the hosts 10 have a processor, a main memory,and the like, which are connected by a communication channel such as aninternal bus. Note that, here, the nodes indicate the hosts 10 or thestorage devices 310.

FIG. 5 is a diagram showing an example of the name table 230. The tableincludes port IDs which are allocated by the switch at the time ofconnection, port WWNs which are permanently provided in the nodes, nodeWWNs which are WWNs of the nodes themselves, port attributes indicatinginformation such as a type of a port or a type of a communicationprotocol (these four pieces of information are hereinafter referred toas name information), misrepresentation A3040 indicating whether or nota storage device is a storage related to misrepresentation processingdescribed later, virtual information 3050 indicating attributes ofvirtual processing, and detailed information 3060 indicating detailedinformation of the nodes. This format itself is defined in an FCP(protocol for a fibre channel).

FIG. 7 is a diagram showing an example of the routing table 70 fordetermining a route in data communication among the plural portprocessing devices 30. The routing table includes port IDs, portprocessing device numbers indicating addresses of the port processingdevices, misrepresentation B for performing routing described later, andvirtual information. Note that rows in FIGS. 5 and 7 correspond witheach other.

The switches 500A and 500B which are connected to the storagevirtualization switch 20 have the same structure as the storagevirtualization switch 20 except that the switches 500A and 500B do nothave a virtualization function. The switches 500A and 500B manage thename information shown in FIG. 5.

1. Procedures for Installing a Storage Virtualization Switch

First, procedures for installing the storage virtualization switch 20 inan existing SAN while keeping the system operating and for assigning astorage device in the system as a virtual storage to start virtualprocessing will be described with reference to FIGS. 1 to 5. Here, thevirtual processing means processing for providing a virtual volume,which has a quantity, a volume, and a function designated by anadministrator or the like of the computer system in advance, to thehosts 10. In addition, in the present invention, the virtual storageindicates a component having a virtual port and a virtual volume. Thevirtual port has a virtual port ID and a virtual port WWN.

In order to install the storage virtualization switch 20 while keepingthe system operating and start the virtual processing, it is necessaryto have at least two switches 500 in the computer system and theswitches are connected by the communication channel 510 (in a form oflinkup) as shown in FIG. 2 as a premise.

FIG. 4 shows a processing flow of procedures for installing the storagevirtualization switch.

First, as shown in FIG. 3A, a communication channel 520 is providedbetween each of the two switches 500 and the storage virtualizationswitch to be installed (step 600). In the storage virtualization switch,the processing section 210 of the central control unit 200 prepares anotification request for name information of all nodes connected to eachswitch 500 and sends the request to the two switches 500 via the portprocessing devices 30. Each switch notifies the storage virtualizationswitch of the name information by executing the name server, and theprocessing section 210 of the storage virtualization switch 20 receivesthe name information (step 610).

The processing section 210 registers the name information received fromeach switch in the name table 230 (FIG. 5) (step 620). For example, itis assumed that the storage virtualization switch 20 has received nameinformation of the hosts 10A and 10B from the switch 500A. In that case,the processing section 210 registers a port ID “Pa”, a port WWN “Wa”, anode “Na”, and a port attribute “Aa”, respectively, for the host 10A inan entry 5A of FIG. 5 and registers a port ID “Pd”, a port WWN “Wd”, anode “Nd”, and a port attribute “Ad”, respectively, for the host 10B inan entry 5D of FIG. 5. Similarly, if the processing section 210 receivesname information of the storage devices 310A and 310B from the switch500B, the processing section 210 registers a port ID “Pb”, a port WWN“Wc”, a node “Nc”, and a port attribute “Ac”, respectively, for thestorage device 310A in an entry 5C and registers a port ID “Pf”, a portWWN “Wf”, a node “Nf”, and a port attribute “Af”, respectively, for thestorage 310B in an entry 5F. When a connection state is changed afterregistering the name information, the processing section 210 prepares arequest for notifying the storage virtualization switch 20 of changeinformation (RSCN: Registered State Change Notification) and sends therequest to each switch.

Next, the processing section 210 prepares a notification request fordetailed information of the node (investigation command, etc. such asINQUIRY of an SCSI command) by executing the name server 250 and sendsthe request to the node registered in the previous step. Each nodehaving received the request notifies the storage virtualization switch20 of detailed information if it is possible to respond to the request,and the processing section 210 registers the received detailedinformation in the name table 230 (step 630). For example, theprocessing section 210 sends a notification request to the host 10A and10B and the storage devices 310A and 310B, which were registered in theprevious step, and receives detailed information from these nodes. Then,the processing section 210 registers detailed information “Host” in theentries 5A and 5D and registers detailed information “Storage” in theentries 5C and 5F.

Here, the administrator of the computer system selects a storage devicewhich the administrator wishes to assign as a virtual storage whilekeeping the system operating based upon the detailed information to beoutputted to the operation terminal 300. Note that virtualizationprocessing may be performed by stopping a storage device which is notused so often. The processing section 210 prepares a virtual storagehaving the same structure as the storage device selected by theadministrator, selects the storage device as a destination of assignmentof the virtual storage, and makes it possible to access the virtualstorage from the hosts (step 640). Information for preparing the virtualstorage is name information and detailed information. Although theprocessing section 210 prepares a unique WWN anew for a WWN of a virtualport assigned to the virtual storage, it assigns a port ID equivalent toa port ID assigned to the storage device selected by the administrator(processing for assigning an ID equivalent to a port ID of a storagedevice is hereinafter referred to as misrepresentation processing) (step650). For example, in the case in which the administrator has assignedthe storage device 310A to the virtual storage (the local virtual table80 in FIG. 1 corresponds to the virtual storage), in order to prepare avirtual storage, the processing section 210 secures the entry 5B for thevirtual storage, registers a port ID “Pb”, a port WWN “Wb”, a node “Nb”,and a port attribute “Ab” in the entry 5B, registers “VT” indicatingthat the storage device is a port processing device having the virtualstorage in the virtual information, and registers “Virtual Storage” inthe detailed information. Then, the processing section 210 registers“virtual assignment” in the virtual information of the entry 5Ccorresponding to the storage device 310A. Since the administrator doesnot assign the storage device 310B to the virtual storage, nothing isregistered in the virtual information of the entry 5F. Here, the port IDis registered as “Pb” in the entry 5B. This is equivalent to the port IDof the storage device 310A (port ID in the entry 5C). Thus, theprocessing section 210 registers “Yes” in the misrepresentation A of theentry 5B and the entry 5C. In addition, since the port processing device30B is directly connected to the storage device 310A, the processingsection 210 sends a communication frame to the storage 310A instead ofthe hosts (Virtual Host). Thus, the processing section 210 registersname information of the port processing device 30B in the entry 5E,registers “VI” indicating that the storage device is a virtual initiatorin the virtual information, and registers “Virtual Host” in the detailedinformation in the same manner.

Next, the processing section 210 registers information on the preparedvirtual storage in the overall virtual table 240 (step 660). The overallvirtual table 240 will be described later.

Next, the processing section 210 stores a number of the port processingdevice, which has received the name information from the switch 500, inthe routing table 70 (FIG. 7) associating the number with the port ID ofthe name information, and registers information indicating that themisrepresentation processing is applied to misrepresentation B of acorresponding entry in the virtual storage which was subjected to themisrepresentation processing (step 670). For example, since the nameinformation of the hosts 10A and 10B is received by the port processingdevice 30A, the processing section 210 stores a port ID “Pa” and a portprocessing device number “Ma” in an entry 7A and stores a port ID “Pd”and a port processing device number “Ma” in an entry 7D. Similarly,since the name information of the storage devices 310A and 310B isreceived by the port processing device 30B, the processing section 210stores a port ID “Pb” and a port processing device number “Mb” in anentry 7C and stores a port ID “Pf” and a port processing device number“Mb” in an entry 7F. Then, since the port processing device 30A formsthe virtual storage of the storage device 310A, the processing section210 stores a port ID “Pb” and a port processing device number “Ma” in anentry 7B and stores “VT” in the virtual information. The processingsection 210 registers “virtual assignment” in the virtual information ofthe entry 7C because the storage device 310A is assigned as the virtualstorage, and registers “Yes” in the misrepresentation B because themisrepresentation processing is performed. In addition, the processingsection 210 also makes registration in an entry 7E in the same manner asstep 650.

The processing section 210 sends a copy of the routing table 70 to allthe port processing devices 30 in the storage virtualization switch, andeach port processing device 30 stores the routing table 70 in the memory60 (step 680).

2. Operations of the Storage Virtualization Switch at the Time when itis Used

Next, operations of the storage virtualization switch 20 at the timewhen it is used will be described. The operations are roughly dividedinto a name service and routing including virtual processing.

2.1 Name Service

The name service in the storage virtualization switch 20 meansprocessing concerning name information of a node and is used at the timeof virtual processing in the inside of the storage virtualization switch20, at the time of name inquiry from a node outside the storagevirtualization switch 20, and the like.

FIG. 6 is a processing flow of the name service. The name service isstarted with name information inquiry from the host 10 as opportunity.

When the storage virtualization switch 20 receives a name informationinquiry request of a certain node A from the host 10 in the portprocessing device 30, the port processing device 30 sends the inquiryrequest to the central control unit 200. In the central control unit200, the processing section 210 analyzes the inquiry request andretrieves inquired information from the name table 230 based upon ananalysis result (step 1000).

The processing section 210 judges whether or not the inquiredinformation is registered in the name table 230 based upon a result ofthe retrieval (step 1010). If the inquired information is registered,the processing section 210 reads a corresponding entry from the nametable 230 (step 1012). If the inquired information is not registered,the processing section 210 transfers the inquiry request to an adjacentswitch and requests the adjacent switch to perform name inquiryprocessing (step 1013). If the adjacent switch has the inquiredinformation, the adjacent switch notifies the host 10, which is aninquiry source, of the inquired information. In doing so, the adjacentswitch may register the name information of the node concerning theinquired information in the name table 230 of the storage virtualizationswitch 20. In this case, processing for maintaining consistency of nameinformation between the switches becomes necessary.

Next, the processing section 210 reads virtual information of the entryand checks whether or not the virtual information indicate a virtualstorage (step 1015). If the virtual information indicates a virtualstorage (represented as “VT” in FIG. 5), the processing section 210checks whether or not misrepresentation A of the entry indicatesmisrepresentation (represented as “Yes” in FIG. 5) (step 1055). If themisrepresentation A indicates misrepresentation, the processing section210 prepares an inquiry rejection (RJT) reply and sends the rejectionreply to the host 10 of the inquiry source via the port processingdevice 30. On the other hand, if the misrepresentation A does notindicate misrepresentation, the processing section 210 performsprocessing of step 1050 described later.

If the virtual information of the entry does not indicate a virtualstorage in step 1015, the processing section 210 checks, based upon thevirtual information, whether or not the virtual storage is a storagedevice assigned as the virtual storage (step 1020). If the virtualstorage is a storage device assigned as the virtual storage (representedas “virtual assignment” in FIG. 5), the processing section 210 checks ifthe misrepresentation A of the entry indicates misrepresentation (step1030). If the misrepresentation A does not indicate misrepresentation,the processing section 210 prepares an inquiry rejection (RJT) reply andsends the rejection reply to the host 10 of the inquiry source via theport processing device 30.

If the misrepresentation A indicates misrepresentation as a result ofstep 1030, if the virtual storage is not the storage device assigned asthe virtual storage, or if a result of step 1055 is No, the processingsection 210 reads the information required by the host 10 from theentry, prepares a reply message, and sends the message to the host 10via the port processing device 30 (step 1050).

2.2 Routing

The routing in the storage virtualization switch 20 means route controlconcerning data communication among the plural port processing devices30. The routing is performed when a communication frame received by theport processing device 30 is sent to the port processing device 3Qdifferent from the port processing device 30 which has received thecommunication frame.

FIG. 8 shows a processing flow of the routing. The routing is startedwith reception of a communication frame from a host or a storage deviceas an opportunity. The communication frame includes a destination portID, a sending port ID, a type of the communication frame, a sequentialnumber of the communication frame, and the like. In addition, as typesof a frame, there are a frame having an command descriptor block (CDB)of SCSI, a reply frame for a memory device, a writing permission replyframe from a memory device, and the like. Here, the case in which thestorage virtualization switch has received a communication frame fromthe host 10 will be described.

When the storage virtualization switch 20 receives a communication framefrom the host 10, the processing section 40 in the port processingdevice 30 analyzes the communication frame. With a sending port ID ofthe communication frame obtained as a result of the analysis as a key,the processing section 40 retrieves an entry having a port ID coincidingwith the destination port ID from the routing table 70 (step 1500), andchecks whether or not information of a destination is registered in therouting table (step 1510). If an entry having a port ID coinciding withthe destination port ID of the communication frame is not registered,the processing section 40 cancels the communication frame (step 1570).If an entry having a port ID coinciding with the destination port ID ofthe communication frame is registered, the processing section 40 readsthe entry from the routing table and checks whether or not the storagedevice is the storage device assigned as the virtual storage (step1520). If the storage device is the assigned storage device (representedas “virtual assignment” in FIG. 7), the processing section 40 checkswhether or not the misrepresentation B of the entry indicatesmisrepresentation (step 1550). If the misrepresentation B does notindicate misrepresentation, the processing section 40 cancels thecommunication frame (step 1570). On the other hand, if themisrepresentation B indicates misrepresentation, or if a result of step1520 shows the storage device is not the storage device assigned as thevirtual storage but the virtual information of the entry indicates thevirtual storage (Yes in step 1530; represented as “VT” in FIG. 6), theprocessing section 40 performs virtual processing described later (step1560). After the virtual processing, or if the virtual information ofthe entry does not indicate the virtual storage, the processing sectionsends the communication frame to the port processing device 30 indicatedby the port processing device number of the entry. The port processingdevice 30 having received the communication frame sends thecommunication frame to an external node or the adjacent switch via theswitch 100.

2.2.1 Virtual Processing

First, a virtual table which is used in virtual processing (step 1560 ofFIG. 8) will be described. As the virtual tables, there are an overallvirtual table 240 and a local virtual table 80. The overall virtualtable 240 is stored in the memory 220 of the central control unit 200,and includes all information of the virtual processing of a storagevirtualization switch. The local virtual table 80 is stored in thememory 60 of the port processing device 30 and stores information on thevirtual processing carried out by the port processing device 30 in asubset of the overall virtual table 240. Therefore, structures of theoverall virtual table 240 and the local virtual table 80 are identicalbut the numbers of elements thereof are different.

FIG. 9 is a diagram showing an example of the overall virtual table 240.The overall virtual table 240 is generated by the processing section 210in the central control unit 200 at the point when the administrator ofthe computer system assigns a storage device to a virtual storage whilekeeping a computer system operating via the operation terminal 300, andstored in the memory 220. The overall storage table 240 includes avirtual port section 2010 (2010A, 2010B), a virtual LU section 2020, anda storage device section 2030. Here, the virtual port sections 2010A and2010B are equivalent to a local virtual table, respectively.

The virtual port section 2010 has a header portion 2045 which storesport information (a port ID and a port WWN) of the virtual storage and abody portion which stores virtual LU information (LUN0 to LUNn) and linkinformation to the virtual LU section 2020. The virtual LU section 2020is information indicating a structure of a virtual LU, and has a volumeof the virtual LU in a header portion 2050 and has mapping informationof a logical block address (LBA) and a volume of an actual storagedevice corresponding to the virtual LU in a body portion 2055. Thestorage device section 2030 has a port ID, a port WWN, an LUN, a portprocessing device number indicating an address of a port processingdevice in a storage virtualization switch, attribute information, andthe like of the storage device. Note that, in the figure, in order toindicate a correspondence relation of link information, referencenumerals 2070 and 2080 are written.

Next, the virtual processing (step 1560 of FIG. 8) will be described.Here, it is assumed that the port processing device 30A receives acommunication frame and performs processing for sending thecommunication frame to the storage device 310A. First, the processingsection 40 in the port processing device 30A retrieves a local virtualtable (virtual port section) using a port ID as a key. As a result ofthe retrieval, if a local virtual table including the port ID does notexist, the processing section 40 sends a request for acquiring the localvirtual table including the port ID to the central control unit 200. Thecentral control unit 200 reads the local virtual table in the overallvirtual table and sends it to the port processing device 30A.

The port processing device 30A converts the received communication framebased upon an information section of the corresponding local virtualtable (local virtual table received from the central control unit 200 inthe case in which the acquisition request is sent to the central controlunit 200). That is, the port processing device 30A converts an port IDof the storage device 310A into a destination port ID, converts a portID of the port processing device 30B (virtual initiator) into a sendingport ID, and further performs LBA conversion based upon the mappinginformation of the virtual LU section. Thereafter, the port processingdevice 30A sends the communication frame to the port processing device30B.

2.3 Update of the Name Table and the Routing Table

It is required to irregularly update the name table 230 and the routingtable 70 when the storage virtualization switch 20 is used. Thus, anupdating operation of the tables will be described.

Update of these tables is carried out when a structure in the computersystem has been changed or when interference has occurred. Occurrence ofthe event is detected by the storage virtualization switch 20 or theswitch 500. The storage virtualization switch 20 can detect theoccurrence of the event with the RSCN not only in the case in which thestorage virtualization switch 20 has detected the event independentlybut also in the case in which the external switch 500 has detected theevent. In the storage virtualization switch 20, the occurrence of theevent is notified to the central control unit 200. The processingsection 210 in the central control unit 200 analyzes the notifiedinformation and checks whether or not the event affects information ofthe node by comparing an entry of the name table 230 and the notifiedcontents. If the event does not affect the information of the node as aresult of checking the name table 230, the processing section 210cancels the notice, and the storage virtualization switch 20 returns toa standby state. If the event affects the information of the node, theprocessing section 210 applies change of the information of thecorresponding node (e.g., disappearance of the host 10 due to powercutoff, etc.) to the name table 230. In the case of deleting an entry inwhich the misrepresentation A is Yes, in order to reduce procedures ofthe administrator at the time when the node is restored, invalidation ofthe entry may be carried out rather than simply deleting the entry.

Next, the processing section 210 also carries out update of the routingtable 70. The processing section 210 carries out this update for therouting table 70 in the central control unit 200 and sends a copy of therouting table 70 to each port processing device 30. Each port processingdevice 30 stores the copy in the memory 60 in the port processing device30. In the case in which there is a change in the storage device 310assigned to the virtual storage, the processing section 210 notifies theoperation terminal 300 of the change to request the administrator of thecomputer system to cope with the change.

The present invention can also be applied to a memory device systemprovided with a switch function. Here, the switch function means afunction provided with a switch in a memory device system and performsas if the physical storage device is directly connected to the host.

FIG. 10 shows an example of a computer system having a memory devicesystem 2500 and one or more hosts 10. The hosts 10 and a physicalstorage 310 are connected to the memory device system 2500 via switches500. The memory device system 2500 has port processing devices 2510which send and receive data to and from an external node, memory devicesubsets 2540 which has a memory device storing data and a memory controldevice controlling the memory device, and a switch 2530 which performsroute control between the port processing devices 2510 and the memorydevice subsets 2540.

In the case in which it is desired to install a memory device system inan existing SAN without stopping a computer system, the presentinvention is used. In the memory device system, the name servicedescribed in the present invention is carried out by the switch 2530,and the routing and the virtual processing are carried out by each portprocessing device 2510.

According to the present invention, a storage virtualization switch,which can be installed in a computer system, can be provided. Inaddition, a storage virtualization switch which, when the installedstorage virtualization switch assigns an existing storage device as avirtual storage, makes it possible to access a virtual storage from ahost while keeping the system operating.

1. A first switch which is connected to a second switch to be connectedto a computer and a third switch to be connected to a storage device,comprising: plural port processing sections which send and receive data;a memory which stores a program; and a processing section which executesthe program; wherein the program includes a section which prepares avirtual storage corresponding to the storage device, a section whichmakes a port ID of the virtual storage equivalent to a port ID of thestorage device, and a section which processes access of the computer tothe storage device.
 2. The first switch according to claim 1, whereinthe memory stores a port ID of the storage device, informationindicating whether or not the storage device has a port ID equivalent toa virtual storage corresponding to the storage device, and informationindicting attributes of virtual process associating them with eachother.
 3. The first switch according to claim 2, wherein the sectionwhich processes access includes a section which, in the case in whichinquiry about name information of the storage device is received fromthe computer, retrieves the name information from the memory, a sectionwhich checks whether or not the storage device corresponds to a virtualstorage from the memory, a section which checks whether or not thestorage device has a port ID equivalent to a virtual storagecorresponding to the storage device, and a section which determineswhether or not to send inquired information to the computer according towhether or not the storage device has the equivalent port ID.
 4. Thefirst switch according to claim 1, wherein the section which processesaccess includes a section which, in the case in which the port ID of thestorage device and the port ID of the virtual storage corresponding tothe storage device are equivalent, applies route control of access fromthe computer to the virtual storage.
 5. The first switch according toclaim 1, wherein the program includes a section which, in the case inwhich the first switch is connected to both the second and thirdswitches, sends a notification request of information on the computerand the storage device to the second switch and the third switch, and asection which, in the case in which information on the computer and thestorage device is received from the second switch and the third switch,stores the information in the memory.
 6. A first switch which isconnected to a second switch to be connected to a computer and a thirdswitch to be connected to a storage device, comprising: plural portprocessing sections which send and receive data; a memory which stores aprogram; and a processing section which executes the program; whereinthe memory stores a port ID of the storage device, first informationindicating whether or not the storage device has a port ID equivalent toa virtual storage corresponding to the storage device, and secondinformation indicting attributes of virtual process associating themwith each other, and the program includes a section which, in the casein which an inquiry request concerning the storage device is receivedfrom the computer, judges whether or not the inquiry request is for thevirtual storage using the second information, a section which, in thecase in which the inquiry request is for the virtual storage, judgeswhether or not the port ID of the virtual storage is equivalent to theport ID of the storage device corresponding to the virtual storage usingthe first information, and a section which, in the case in which theport IDs are equivalent, sends an inquiry rejection to the computer. 7.A first switch which is connected to a second switch to be connected toa computer and a third switch to be connected to a storage device,comprising: plural port processing sections which send and receive data;a memory which stores a program; and a processing section which executesthe program; wherein the memory stores a port ID of the storage device,first information indicating whether or not the storage device has aport ID equivalent to a virtual storage corresponding to the storagedevice, and second information indicting attributes of virtual processassociating them with each other, and the program includes a sectionwhich, in the case in which an inquiry request concerning the storagedevice is received from the computer, judges whether or not the inquiryrequest is for the virtual storage using the second information, asection which, in the case in which the inquiry request is for thevirtual storage, judges whether or not the port ID of the virtualstorage is equivalent to the port ID of the storage device correspondingto the virtual storage using the first information, and a section which,in the case in which the port IDs are not equivalent, sends inquiredinformation to the computer.
 8. A first switch which is connected to asecond switch to be connected to a computer and a third switch to beconnected to a storage device, comprising: plural port processingsections which send and receive data; a memory which stores a program;and a processing section which executes the program; wherein the memorystores a port ID of the storage device, first information indicatingwhether or not the storage device has a port ID equivalent to a virtualstorage corresponding to the storage device, and second informationindicting attributes of virtual process associating them with eachother, and the program includes a section which, in the case in which aninquiry request concerning the storage device is received from thecomputer, judges whether or not the inquiry request is for the virtualstorage using the second information, a section which, in the case inwhich the inquiry request is not for the virtual storage, judges whetheror not the port ID of the virtual storage is equivalent to the port IDof the storage device corresponding to the virtual storage using thefirst information, and a section which, in the case in which the portIDs are equivalent, sends inquired information to the computer.
 9. Afirst switch which is connected to a second switch to be connected to acomputer and a third switch to be connected to a storage device,comprising: plural port processing sections which send and receive data;a memory which stores a program; and a processing section which executesthe program; wherein the memory stores a port ID of the storage device,first information indicating whether or not the storage device has aport ID equivalent to a virtual storage corresponding to the storagedevice, and second information indicting attributes of virtual processassociating them with each other, and the program includes a sectionwhich, in the case in which an inquiry request concerning the storagedevice is received from the computer, judges whether or not the inquiryrequest is for the virtual storage using the second information, asection which, in the case in which the inquiry request is not for thevirtual storage, judges whether or not the port ID of the virtualstorage is equivalent to the port ID of the storage device correspondingto the virtual storage using the first information, and a section which,in the case in which the port IDs are not equivalent, sends an inquiryrejection to the computer.
 10. A method of connecting switch whichconnects a first switch to both of a second switch to be connected to acomputer and a third switch to be connected to a storage device,comprising the steps of: sending a notification request of nameinformation concerning the computer and the storage device to the secondswitch and the third switch; receiving the name information from thesecond switch and the third switch; preparing a virtual storagecorresponding to the storage device based upon the name information;making a port ID of the virtual storage equivalent to a port ID of thestorage device; and processing access of the computer to the storagedevice.
 11. The method of connecting switch according to claim 10,wherein the memory stores a port ID of the storage device, informationindicating whether or not the storage device has a port ID equivalent toa virtual storage corresponding to the storage device, and informationindicting attributes of virtual process associating them with eachother.
 12. The method of connecting switch according to claim 11,wherein the step of processing access includes a step of, in the case inwhich inquiry about name information of the storage device is receivedfrom the computer, retrieving the name information from the memory, astep of checking whether or not the storage device corresponds to avirtual storage from the memory, a step of checking whether or not thestorage device has a port ID equivalent to a virtual storagecorresponding to the storage device, and a step of determining whetheror not to send inquired information to the computer according to whetheror not the storage device has the equivalent port ID.
 13. The method ofconnecting switch according to claim 10, wherein the step of processingaccess includes a step of, in the case in which the port ID of thestorage device and the port ID of the virtual storage corresponding tothe storage device are equivalent, applying route control of access fromthe computer to the virtual storage.
 14. The method of connecting switchaccording to claim 10, wherein the step of processing access includes astep of, in the case in which the first switch is connected to both thesecond and third switches, sending a notification request of informationon the computer and the storage device to the second switch and thethird switch, and a step of, in the case in which information on thecomputer and the storage device is received from the second switch andthe third switch, storing the information in the memory.
 15. A method ofconnecting switch which connects a first switch to both of a secondswitch to be connected to a computer and a third switch to be connectedto a storage device, wherein the first switch stores a port ID of thestorage device, first information indicating whether or not the storagedevice has a port ID equivalent to a virtual storage corresponding tothe storage device, and second information indicting attributes ofvirtual process associating them with each other, and the methodcomprises steps of: in the case in which an inquiry request concerningthe storage device is received from the computer, judging whether or notthe inquiry request is for the virtual storage using the secondinformation; in the case in which the inquiry request is for the virtualstorage, judging whether or not the port ID of the virtual storage isequivalent to the port ID of the storage device corresponding to thevirtual storage using the first information; and, in the case in whichthe port IDs are equivalent, sending an inquiry rejection to thecomputer.
 16. A method of connecting switch which connects a firstswitch to both of a second switch to be connected to a computer and athird switch to be connected to a storage device, wherein the firstswitch stores a port ID of the storage device, first informationindicating whether or not the storage device has a port ID equivalent toa virtual storage corresponding to the storage device, and secondinformation indicting attributes of virtual process associating themwith each other, and the method comprises steps of: in the case in whichan inquiry request concerning the storage device is received from thecomputer, judging whether or not the inquiry request is for the virtualstorage using the second information; in the case in which the inquiryrequest is for the virtual storage, judging whether or not the port IDof the virtual storage is equivalent to the port ID of the storagedevice corresponding to the virtual storage using the first information;and, in the case in which the port IDs are not equivalent, sendinginquired information to the computer.
 17. A method of connecting switchwhich connects a first switch to both of a second switch to be connectedto a computer and a third switch to be connected to a storage device,wherein the first switch stores a port ID of the storage device, firstinformation indicating whether or not the storage device has a port IDequivalent to a virtual storage corresponding to the storage device, andsecond information indicting attributes of virtual process associatingthem with each other, and the method comprises steps of: in the case inwhich an inquiry request concerning the storage device is received fromthe computer, judging whether or not the inquiry request is for thevirtual storage using the second information; in the case in which theinquiry request is not for the virtual storage, judging whether or notthe port ID of the virtual storage is equivalent to the port ID of thestorage device corresponding to the virtual storage using the firstinformation; and, in the case in which the port IDs are equivalent,sending inquired information to the computer.
 18. A method of connectingswitch which connects a first switch to both of a second switch to beconnected to a computer and a third switch to be connected to a storagedevice, wherein the first switch stores a port ID of the storage device,first information indicating whether or not the storage device has aport ID equivalent to a virtual storage corresponding to the storagedevice, and second information indicting attributes of virtual processassociating them with each other, and the method comprises steps of: inthe case in which an inquiry request concerning the storage device isreceived from the computer, judging whether or not the inquiry requestis for the virtual storage using the second information; in the case inwhich the inquiry request is not for the virtual storage, judgingwhether or not the port ID of the virtual storage is equivalent to theport ID of the storage device corresponding to the virtual storage usingthe first information; and, in the case in which the port IDs are notequivalent, sending an inquiry rejection to the computer.